home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / dflat_r_.arc / MENU.C < prev    next >
Text File  |  1991-10-02  |  2KB  |  87 lines

  1. /* ------------- menu.c ------------- */
  2.  
  3. #include <stdio.h>
  4. #include "dflat.h"
  5.  
  6. static struct PopDown *FindCmd(MBAR *mn, int cmd)
  7. {
  8.     MENU *mnu = mn->PullDown;
  9.     while (mnu->Title != (void *)-1)    {
  10.         struct PopDown *pd = mnu->Selections;
  11.         while (pd->SelectionTitle != NULL)    {
  12.             if (pd->ActionId == cmd)
  13.                 return pd;
  14.             pd++;
  15.         }
  16.         mnu++;
  17.     }
  18.     return NULL;
  19. }
  20.  
  21. char *GetCommandText(MBAR *mn, int cmd)
  22. {
  23.     struct PopDown *pd = FindCmd(mn, cmd);
  24.     if (pd != NULL)
  25.         return pd->SelectionTitle;
  26.     return NULL;
  27. }
  28.  
  29. int isCascadedCommand(MBAR *mn, int cmd)
  30. {
  31.     struct PopDown *pd = FindCmd(mn, cmd);
  32.     if (pd != NULL)
  33.         return pd->Attrib & CASCADED;
  34.     return FALSE;
  35. }
  36.  
  37. void ActivateCommand(MBAR *mn, int cmd)
  38. {
  39.     struct PopDown *pd = FindCmd(mn, cmd);
  40.     if (pd != NULL)
  41.         pd->Attrib &= ~INACTIVE;
  42. }
  43.  
  44. void DeactivateCommand(MBAR *mn, int cmd)
  45. {
  46.     struct PopDown *pd = FindCmd(mn, cmd);
  47.     if (pd != NULL)
  48.         pd->Attrib |= INACTIVE;
  49. }
  50.  
  51. int isActive(MBAR *mn, int cmd)
  52. {
  53.     struct PopDown *pd = FindCmd(mn, cmd);
  54.     if (pd != NULL)
  55.         return !(pd->Attrib & INACTIVE);
  56.     return FALSE;
  57. }
  58.  
  59. int GetCommandToggle(MBAR *mn, int cmd)
  60. {
  61.     struct PopDown *pd = FindCmd(mn, cmd);
  62.     if (pd != NULL)
  63.         return (pd->Attrib & CHECKED) != 0;
  64.     return FALSE;
  65. }
  66.  
  67. void SetCommandToggle(MBAR *mn, int cmd)
  68. {
  69.     struct PopDown *pd = FindCmd(mn, cmd);
  70.     if (pd != NULL)
  71.         pd->Attrib |= CHECKED;
  72. }
  73.  
  74. void ClearCommandToggle(MBAR *mn, int cmd)
  75. {
  76.     struct PopDown *pd = FindCmd(mn, cmd);
  77.     if (pd != NULL)
  78.         pd->Attrib &= ~CHECKED;
  79. }
  80.  
  81. void InvertCommandToggle(MBAR *mn, int cmd)
  82. {
  83.     struct PopDown *pd = FindCmd(mn, cmd);
  84.     if (pd != NULL)
  85.         pd->Attrib ^= CHECKED;
  86. }
  87.